package com.tanhua.commons.template;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.tanhua.commons.properties.OssProperties;
import lombok.extern.slf4j.Slf4j;

import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

@Slf4j
public class OssTemplate {

    private OssProperties properties;

    public OssTemplate(OssProperties properties) {
        this.properties = properties;
    }
    /**
     * 上传文件
     *
     * @param fileName 文件名称
     * @param is       文件输入流
     * @return 文件的访问路径
     */
    public String upload (String fileName, InputStream is){
        // Endpoint地域节点，请按实际情况填写。
        String endpoint = properties.getEndpoint();

        // 云账号AccessKey有所有API访问权限，
        String accessKeyId = properties.getAccessKey();
        String accessKeySecret = properties.getSecret();

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 上传文件，存储路径示例： 2021/01/14/mm.jpg
        String path = new SimpleDateFormat("yyyy/MM/dd").format(new Date())
                + "/" + UUID.randomUUID().toString()
                + fileName.substring(fileName.lastIndexOf("."));

        ossClient.putObject(properties.getBucketName(), path, is);

        // 关闭OSSClient。
        ossClient.shutdown();

        return properties.getUrl() + "/" + path;
    }
    }

